package br.com.beiramar.action.minhaEquipe;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import br.com.beiramar.dao.rateio.AbstractDao;
import br.com.beiramar.dao.rateio.impl.CorretorDaoImpl;
import br.com.beiramar.entity.rateio.Corretor;

@Name("consultaEquipeAction")
@Scope(ScopeType.SESSION)
public class ConsultaEquipeAction extends AbstractDao{

	CorretorDaoImpl dao = new CorretorDaoImpl();
	Corretor corretor = new Corretor();
	
	String codigoD;
	String gerente = null;
	String diretor = null;
	String diretorGeral = null;
	String creci = null;
	String codigoEqu = null;
	
	public void buscaNivelHierarquico(String codigoD, String codigo){
		
		this.codigoD = codigoD;
		String sqlIndividual = "SELECT COR.GERENTE, COR.DIRETOR, COR.CODIGO_D, COR.CRECI, COR.CODIGO_EQU FROM CADEMP COR WHERE COR.CRECI = '"+codigoD+"';";
		PreparedStatement stmt = null;
		ResultSet rs;
		
		try {
			stmt = getConexao().prepareStatement(sqlIndividual);
			rs = stmt.executeQuery();
			
			while(rs.next()){ 
				gerente = rs.getString("GERENTE");
				diretor = rs.getString("DIRETOR");
				diretorGeral = rs.getString("CODIGO_D");
				creci = rs.getString("CRECI");
				codigoEqu = rs.getString("CODIGO_EQU");
			}
			if(gerente.equalsIgnoreCase("sim")){
				this.empMaster(this.diretorGeral);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	
	public void empMaster(String codigoD){
		String sqlIndividual = "SELECT CAD.CODIGO FROM CADEMP COR JOIN CADEQU CAD ON COR.CODIGO_D = CAD.CODIGO_D WHERE CAD.CODIGO_D = '"+codigoD+"';";
		PreparedStatement stmt = null;
		ResultSet rs;
		
		try {
			stmt = getConexao().prepareStatement(sqlIndividual);
			rs = stmt.executeQuery();
			
			while(rs.next()){ 
				codigoEqu = rs.getString("CODIGO");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	
	public Boolean renderizaTabDiretor(){
		if(this.diretorGeral.equalsIgnoreCase("592")){
			return true;
		}else{
			return false;
		}
	}
	
	public Boolean renderizaTabEmpMaster(){
		if(this.diretorGeral.equalsIgnoreCase("592") || diretor.equalsIgnoreCase("sim")){
			return true;
		}else {
			return false;
		}
	}
	
	public Boolean renderizaTabCorretor(){
			return true;
	}
	
	public Boolean renderizaTabPatrocinado(){
		if(this.gerente.equalsIgnoreCase("sim")){
			return true;
		}
		return false;
	}
	
	public List<Corretor> buscaDiretor(){
		List<Corretor> listaDiretor = new ArrayList<Corretor>();
		String sql = null;
		
		if(diretorGeral.equalsIgnoreCase("592")){
			sql = "SELECT COR.CODIGO_D, COR.NOME, COR.CRECI, COR.CELULAR1, COR.IRREGULAR, COR.CELULAR2 FROM CADEMP COR WHERE COR.INATIVO = 'NAO' AND COR.DIRETOR = 'SIM' AND COR.CODIGO_AC = 67 ORDER BY COR.NOME;";	
		}
		if(diretor.equalsIgnoreCase("sim")){
			sql = "SELECT COR.CODIGO_D, COR.NOME, COR.CRECI, COR.CELULAR1, COR.IRREGULAR, COR.CELULAR2 FROM CADEMP COR WHERE COR.CODIGO_D = "+codigoD+";";
		}
		
		PreparedStatement stmt = null;
		ResultSet rs;
		
		try {
			stmt = getConexao().prepareStatement(sql);
			rs = stmt.executeQuery();
			
			while(rs.next()){
				Corretor corretor = new Corretor();
				corretor.setCodigo(rs.getString("CODIGO_D"));
				corretor.setNome(rs.getString("NOME"));
				corretor.setCelular1(rs.getString("CELULAR1"));
				corretor.setCelular2(rs.getString("CELULAR2"));
				corretor.setCreci(rs.getString("CRECI"));
				if(rs.getString("IRREGULAR").equalsIgnoreCase("sim")){corretor.setIrregular("#b00c0c");}else{corretor.setIrregular("#{a4jSkin.tableBackgroundColor}");}
				listaDiretor.add(corretor);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} 
		return listaDiretor;
	}
	
	public List<Corretor> buscaEmpMaster(){
		List<Corretor> listaEmpMaster = new ArrayList<Corretor>();
		String sql = null;
		if(diretorGeral.equalsIgnoreCase("592")){
			sql = "SELECT COR.CODIGO_D, COR.NOME, COR.CRECI, COR.CELULAR1, COR.IRREGULAR, COR.CELULAR2 FROM CADEMP COR JOIN CADEQU CAD ON COR.CODIGO_D = CAD.CODIGO_D WHERE COR.GERENTE = 'SIM' AND COR.INATIVO = 'NAO' AND COR.CRECI != '' ORDER BY COR.NOME;";		
		}
		if(diretor.equalsIgnoreCase("sim")){
			sql = "SELECT COR.CODIGO_D, COR.NOME, COR.CRECI, COR.CELULAR1, COR.IRREGULAR, COR.CELULAR2 FROM CADEMP COR JOIN CADEQU CAD ON COR.CODIGO_D = CAD.CODIGO_D WHERE COR.GERENTE = 'SIM' AND COR.INATIVO = 'NAO' AND COR.CRECI != '' AND COR.CRECI_DIRETOR = '"+creci+"' ORDER BY COR.NOME;";
		}else if(gerente.equalsIgnoreCase("sim")){
			sql = "SELECT COR.CODIGO_D, COR.NOME, COR.CRECI, COR.CELULAR1, COR.IRREGULAR, COR.CELULAR2 FROM CADEMP COR JOIN CADEQU CAD ON COR.CODIGO_D = CAD.CODIGO_D WHERE COR.CODIGO_D = '"+codigoD+"' ORDER BY COR.NOME;";
		}
		PreparedStatement stmt = null;
		ResultSet rs;
		
		try {
			stmt = getConexao().prepareStatement(sql);
			rs = stmt.executeQuery();
			
			while(rs.next()){
				Corretor corretor = new Corretor();
				corretor.setCodigo(rs.getString("CODIGO_D"));
				corretor.setNome(rs.getString("NOME"));
				corretor.setCelular1(rs.getString("CELULAR1"));
				corretor.setCelular2(rs.getString("CELULAR2"));
				corretor.setCreci(rs.getString("CRECI"));
				if(rs.getString("IRREGULAR").equalsIgnoreCase("sim")){corretor.setIrregular("#b00c0c");}else{corretor.setIrregular("#{a4jSkin.tableBackgroundColor}");}
				listaEmpMaster.add(corretor);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} 
		return listaEmpMaster;
	}
	
	public List<Corretor> buscaCorretor(){
		List<Corretor> listaEmpMaster = new ArrayList<Corretor>();
		String sql = null;
		
		if(diretorGeral.equalsIgnoreCase("592")){
			sql = "SELECT COR.CODIGO_D, COR.NOME, COR.CRECI, COR.CELULAR1, COR.USUARIO_QUALIFICACAO, COR.IRREGULAR, COR.CELULAR2 FROM CADEMP COR WHERE COR.INATIVO = 'NAO' AND COR.DIRETOR = 'NAO' AND COR.GERENTE = 'NAO' AND COR.NOME != 'PADRAO' AND COR.NOME != 'ADMINISTRADOR' AND COR.NOME != 'CORRETOR TESTE' AND COR.CORRETOR= 'SIM' AND COR.CRECI != '' ORDER BY COR.NOME;";
		}else if(diretor.equalsIgnoreCase("sim")){
			sql = "SELECT COR.CODIGO_D, COR.NOME, COR.CRECI, COR.CELULAR1, COR.USUARIO_QUALIFICACAO, COR.IRREGULAR, COR.CELULAR2 FROM CADEMP COR WHERE COR.INATIVO = 'NAO' AND COR.DIRETOR = 'NAO' AND COR.GERENTE = 'NAO' AND COR.NOME != 'PADRAO' AND COR.NOME != 'ADMINISTRADOR' AND COR.NOME != 'CORRETOR TESTE' AND COR.CORRETOR= 'SIM' AND COR.CRECI != '' AND COR.CRECI_DIRETOR = '"+creci+"' ORDER BY COR.NOME;";
		}else if(gerente.equalsIgnoreCase("sim")){
			sql = "SELECT COR.CODIGO_D, COR.NOME, COR.CRECI, COR.CELULAR1, COR.USUARIO_QUALIFICACAO, COR.IRREGULAR, COR.CELULAR2 FROM CADEMP COR WHERE COR.INATIVO = 'NAO' AND COR.CODIGO_EQU = '"+codigoEqu+"' ORDER BY COR.NOME;";
		}else {
			sql = "SELECT COR.CODIGO_D, COR.NOME, COR.CRECI, COR.CELULAR1, COR.USUARIO_QUALIFICACAO, COR.IRREGULAR, COR.CELULAR2 FROM CADEMP COR WHERE COR.INATIVO = 'NAO' AND COR.CRECI_PATROCINADOR = '"+creci+"';";
		}
		
		PreparedStatement stmt = null;
		ResultSet rs;
		
		try {
			stmt = getConexao().prepareStatement(sql);
			rs = stmt.executeQuery();
			
			while(rs.next()){
				Corretor corretor = new Corretor();
				corretor.setCodigo(rs.getString("CODIGO_D"));
				corretor.setNome(rs.getString("NOME"));
				corretor.setCelular1(rs.getString("CELULAR1"));
				corretor.setCelular2(rs.getString("CELULAR2"));
				corretor.setCreci(rs.getString("CRECI"));
				corretor.setQualificacao(rs.getString("USUARIO_QUALIFICACAO"));
				if(rs.getString("IRREGULAR").equalsIgnoreCase("sim")){corretor.setIrregular("#b00c0c");}else{corretor.setIrregular("#{a4jSkin.tableBackgroundColor}");}
				listaEmpMaster.add(corretor);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} 
		return listaEmpMaster;
	}

	public String getCodigoD() {
		return codigoD;
	}

	public void setCodigoD(String codigoD) {
		this.codigoD = codigoD;
	}
	
	public List<Corretor> buscaPatrocinado(){
		List<Corretor> listaEmpMaster = new ArrayList<Corretor>();
		String sql = null;
		
			sql = "SELECT COR.CODIGO_D, COR.NOME, COR.CRECI, COR.USUARIO_QUALIFICACAO, COR.CELULAR1, COR.IRREGULAR, COR.CELULAR2 FROM CADEMP COR WHERE COR.INATIVO = 'NAO' AND COR.CRECI_PATROCINADOR = '"+creci+"' ORDER BY COR.NOME;";
		
		PreparedStatement stmt = null;
		ResultSet rs;
		
		try {
			stmt = getConexao().prepareStatement(sql);
			rs = stmt.executeQuery();
			
			while(rs.next()){
				Corretor corretor = new Corretor();
				corretor.setCodigo(rs.getString("CODIGO_D"));
				corretor.setNome(rs.getString("NOME"));
				corretor.setCelular1(rs.getString("CELULAR1"));
				corretor.setCelular2(rs.getString("CELULAR2"));
				corretor.setQualificacao(rs.getString("USUARIO_QUALIFICACAO"));
				corretor.setCreci("CRECI");
				if(rs.getString("IRREGULAR").equalsIgnoreCase("sim")){corretor.setIrregular("#b00c0c");}else{corretor.setIrregular("#{a4jSkin.tableBackgroundColor}");}
				listaEmpMaster.add(corretor);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} 
		return listaEmpMaster;
	}
}
